package main

import (
	"fmt"
)

/*
golang中并没有明确的面向对象的说法，实在要扯上的话，可以将struct比作其它语言中的class。
golang中没有public、private的声明，类名大写则在其他包中可以被访问，属性名、方法名也是如此
*/
type Hero struct {
	Name  string
	Ad    int
	Level int
}

func (this *Hero) Show() {
	fmt.Println("Name=", this.Name)
	fmt.Println("Ad=", this.Ad)
	fmt.Println("Level=", this.Level)
}

func (this *Hero) GetName() string {
	return this.Name
}

func (this *Hero) SetName(newName string) {
	this.Name = newName
}

func main() {
	hero := Hero{"zhangsan", 100, 1}
	hero.Show()

	hero.SetName("lisi")
	hero.GetName()
}
